home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_400 / 445_01 / alert10 / soundfx.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-03-09  |  1.4 KB  |  81 lines

  1. #include <dos.h>
  2. #include <conio.h>
  3.  
  4. #define BUZZ 48
  5. #define DDELAY 1500
  6. #define SDELAY 134
  7. #define ADJFACTOR 3.5
  8. #define MAXDIGITS 7
  9. #define NOTE1 2000
  10. #define NOTE2 500
  11. #define NOTE3 1200
  12. #define NOTE4 200
  13. #define INTERVAL 10
  14. #define REPEATS 160
  15.  
  16. void dialtone();
  17. void number( int );
  18. void dial();
  19. void warble();
  20.  
  21.  
  22. /**************************************************************************/
  23. /*                        SOUND EFFECTS (Dialing)                         */
  24. /**************************************************************************/
  25. void dial()
  26. {
  27.    register t;
  28.    const int P[ MAXDIGITS ] = { 750, 1150, 550, 1127, 920, 799, 760 };
  29.  
  30.       dialtone();
  31.  
  32.       for( t = 0; t < MAXDIGITS; t++ )
  33.       number( P[t] );
  34. }
  35.  
  36. void number( int freq )
  37. {
  38.  
  39.        sound( freq );
  40.        delay( SDELAY );
  41.        nosound();
  42.        delay( SDELAY / ADJFACTOR );
  43.        return;
  44.  
  45. }
  46.  
  47.  
  48.  
  49. void dialtone()
  50. {
  51.       sound( BUZZ );
  52.       delay( DDELAY );
  53.       nosound();
  54.  
  55.       return;
  56. }
  57.  
  58.  
  59.  
  60. void warble()
  61. {
  62.    int delay1 = 0;
  63.  
  64.       while ( delay1++ < REPEATS )
  65.          {
  66.          sound( NOTE1 );
  67.          delay( INTERVAL );
  68.  
  69.          sound( NOTE2 );
  70.          delay( INTERVAL );
  71.  
  72.          sound( NOTE3 );
  73.          delay( INTERVAL );
  74.  
  75.          sound ( NOTE4 );
  76.          delay( 2 * INTERVAL );
  77.          }
  78.       nosound();
  79. }
  80.  
  81.